#include <stdio.h>
#include<stdlib.h>
//struct s
//{
//	int a;
//	int arr[];
//};
//int main()
//{
//	struct s* ps = (struct s*)malloc(sizeof(int) + sizeof(int) * 10);
//	if (ps == NULL)
//	{
//		perror("malloc");
//		return 1;
//	}
//	ps->a = 10;
//	for ( int i = 0; i < 10; i++)
//	{
//		ps->arr[i] = i + 1;
//	}
//	struct s* tmp =(struct s *) realloc(ps, sizeof(int) + 40 * sizeof(int));
//	if (tmp != NULL)
//	{
//		ps = tmp;
//	}
//	else
//	{
//		perror("realloc");
//		return 1;
//	}
//	for (int i = 0; i < 40; i++)
//	{
//		printf("%x ", ps->arr[i]);
//	}
//	free(ps);
//	ps = NULL;
//	return 0;
//}
struct s
{
	int i; 
	int* arr;
};
int main()
{
	struct s* ps = (struct s*)malloc(sizeof(struct s));
	if (ps == NULL)
	{
		perror("malloc");
		return 1;
	}	
	int * tmp = (int *)malloc(sizeof(int) * 10);
	if (tmp != NULL)
		ps->arr = tmp;
	else
		perror("malloc2");
	ps->i = 10;
	for (int x = 0; x < 10; x++)
	{
		ps->arr[x] = x + 1;
	}
	int * ps1 = (int * )realloc(ps->arr,  20 * sizeof(int));
	if (ps != NULL)
		ps->arr = ps1;
	for (int i = 0; i < 20; i++)
	{
		printf("%d ", ps->arr[i]);
	}
	free(ps);
	ps = NULL;
	return 0;
}